Text copied to clipboard!

Titre

Text copied to clipboard!

Programmeur systèmes

Description

Text copied to clipboard!
Nous recherchons un Programmeur systèmes expérimenté pour concevoir, développer, optimiser et maintenir des logiciels de bas niveau essentiels au bon fonctionnement des infrastructures informatiques modernes. Ce poste s’adresse à une personne passionnée par les systèmes d’exploitation, la programmation proche du matériel, la gestion de la mémoire, les performances, la fiabilité et la sécurité des environnements techniques complexes. Le Programmeur systèmes intervient sur des composants critiques tels que les noyaux, pilotes, bibliothèques système, outils d’administration, couches d’abstraction matérielle, services réseau, mécanismes d’ordonnancement et solutions embarquées ou temps réel. Dans ce rôle, vous collaborerez étroitement avec des ingénieurs logiciels, administrateurs systèmes, architectes techniques, équipes DevOps, spécialistes cybersécurité et parfois fabricants de matériel afin de produire des solutions robustes, efficaces et évolutives. Vous serez amené à analyser les besoins techniques, comprendre les contraintes d’architecture, proposer des choix de conception adaptés et écrire un code performant dans des langages comme C, C++, Rust ou assembleur selon les contextes. Une attention particulière sera portée à la qualité du code, aux tests, au débogage avancé, à la documentation et à l’amélioration continue. Le Programmeur systèmes joue un rôle central dans l’optimisation des performances applicatives et de l’utilisation des ressources machine. Il doit être capable d’identifier les goulets d’étranglement, de diagnostiquer des comportements imprévus, d’examiner les interactions entre logiciel et matériel et de résoudre des problèmes complexes liés à la concurrence, aux interruptions, à la synchronisation, à la mémoire ou aux communications interprocessus. Une bonne compréhension des systèmes Linux, Unix, Windows bas niveau ou environnements embarqués est fortement appréciée selon les projets. Nous recherchons une personne rigoureuse, curieuse et méthodique, capable de travailler aussi bien de manière autonome qu’en équipe. Vous devrez faire preuve d’un excellent esprit d’analyse, d’une forte discipline technique et d’une capacité à intervenir sur des composants sensibles où la moindre erreur peut avoir un impact important sur la stabilité ou la sécurité du système. Une expérience avec les outils de profilage, de traçage, de compilation croisée, de contrôle de version et d’intégration continue constituera un atout important. Ce poste offre l’opportunité de contribuer à des projets à forte valeur technique, dans des environnements où la précision, la performance et la fiabilité sont essentielles. Si vous aimez comprendre en profondeur le fonctionnement des machines, résoudre des problèmes techniques exigeants et construire des fondations logicielles solides pour des produits critiques, ce rôle vous permettra d’avoir un impact direct et durable sur la qualité des systèmes développés par l’organisation.

Responsabilités

Text copied to clipboard!
  • Concevoir et développer des composants logiciels de bas niveau pour systèmes d’exploitation ou plateformes embarquées.
  • Optimiser les performances, la consommation mémoire et la stabilité des services système.
  • Écrire, tester et maintenir du code robuste en C, C++, Rust ou assembleur selon les besoins.
  • Analyser les interactions entre matériel et logiciel afin de résoudre des problèmes complexes.
  • Déboguer des incidents critiques liés au noyau, aux pilotes, aux processus ou aux communications système.
  • Documenter l’architecture, les choix techniques et les procédures de maintenance des composants développés.
  • Collaborer avec les équipes sécurité, infrastructure et développement pour garantir la fiabilité globale.
  • Mettre en place des tests automatisés, outils de profilage et mécanismes de surveillance technique.

Exigences

Text copied to clipboard!
  • Diplôme en informatique, génie logiciel, systèmes embarqués ou domaine technique équivalent.
  • Expérience confirmée en programmation systèmes ou développement logiciel de bas niveau.
  • Maîtrise d’au moins un langage adapté comme C, C++, Rust ou assembleur.
  • Bonne compréhension des systèmes d’exploitation, de la mémoire, des processus et des threads.
  • Expérience en débogage avancé, analyse de performances et résolution de problèmes complexes.
  • Connaissance des outils de compilation, de versionnement et d’intégration continue.
  • Capacité à lire une documentation technique dense et à produire une documentation claire.
  • Sens rigoureux de la qualité, de la sécurité et de la fiabilité logicielle.

Questions potentielles d'entretien

Text copied to clipboard!
  • Quelle expérience avez-vous en programmation systèmes ou en développement bas niveau ?
  • Quels langages utilisez-vous le plus souvent pour développer des composants système ?
  • Avez-vous déjà travaillé sur des noyaux, pilotes ou logiciels embarqués ?
  • Comment abordez-vous le débogage d’un problème de mémoire ou de concurrence ?
  • Quels outils de profilage, traçage ou diagnostic maîtrisez-vous ?
  • Décrivez un projet où vous avez amélioré significativement les performances d’un système.
  • Quelle est votre expérience avec Linux, Unix, Windows bas niveau ou systèmes temps réel ?
  • Comment garantissez-vous la fiabilité et la sécurité du code critique que vous produisez ?